package DataStructure.list.ArrayList;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayListTest2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        // 1. 向集合中添加元素
        list.add("hello");
        list.add("world");
        list.add("hello");

        //2.向指定位置添加元素，索引数字不是任意的，不能大于数组的容量，可以小于等于数组的容量，否则会出现索引越界异常
        list.add(1, "java");
        Object[] toArray = list.toArray();
        System.out.println(Arrays.toString(toArray));

        //3.获取元素，根据索引获取元素
        String s = list.get(1);

        //4.获取所有元素方式1
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //5.获取所有元素方式2
        for(String str : list){
            System.out.println(str);
        }

        //6.替换元素
        list.set(1, "javaee");

        //7.根据索引位置删除元素,remove方法返回的是被删除的元素，
        // 也可以直接传入元素删除,如果有多个相同的元素，只会删除第一个
        String remove1 = list.remove(1);
        boolean remove2 = list.remove("hello");

        //8.查找元素在容器中第一次出现的位置
        int world1 = list.indexOf("world");

        //9.查找元素在容器中最后一次出现的位置
        int world2 = list.lastIndexOf("world");
    }
}
